package com.ittao.taoaicodeai.ai.config;

import com.ittao.taoaicodemodel.model.enums.UserRoleEnum;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * VIP 限制配置
 */
@Configuration
@ConfigurationProperties(prefix = "vip.limits")
@Data
public class VipLimitConfig {

    /**
     * 普通用户限制配置
     */
    private UserLimits user = new UserLimits();

    /**
     * VIP用户限制配置
     */
    private UserLimits vip = new UserLimits();

    @Data
    public static class UserLimits {
        /**
         * 每日应用生成次数限制
         */
        private int dailyAppGen;

        /**
         * 每日下载次数限制 (-1 表示无限制)
         */
        private int dailyDownload;

        /**
         * 每日导出次数限制 (-1 表示无限制)
         */
        private int dailyExport;

        /**
         * 最大 Token 数量
         */
        private int maxTokens;

        /**
         * 最大消息记忆条数
         */
        private int maxMessages;
    }

    /**
     * 根据用户角色获取限制配置
     */
    public UserLimits getLimitsByRole(String userRole) {
        UserRoleEnum role = UserRoleEnum.getEnumByValue(userRole);
        if (UserRoleEnum.VIP.equals(role) || UserRoleEnum.ADMIN.equals(role)) {
            return vip;
        }
        return user;
    }
}